<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>

  <script>
    /*
      字符串方法小案例
    */


    // 1. 反转字符串
    // split()   按照一位一位的把字符串切割成数组
    // reverse()  可以反转数组
    // join()   可以把数组内每一个拼接成一个字符串
    // var str = 'hello world'
    // var r1 = str.split('')
    // console.log(r1)
    // var r2 = r1.reverse()
    // console.log(r2)
    // var r3 = r2.join('')
    // console.log(r3)

    // var str = 'abcba'
    // var r3 = str.split('').reverse().join('')
    // if (r3 === str) {
    //   console.log('可回文')
    // }


    // 2. 批量替换敏感词
    // 要求把一个字符串内的所有敏感词全部替换
    // 准备一个敏感词
    var s = 'HH'

    // 准备要替换的字符串
    var str = 'asdaHHsdaHHsdHHasHHdasdHHasdaHHsdaHHsd'

    // 方案1. 循环
    // 因为一次只能替换一个
    // 什么情况下才会循环, 有敏感词才会循环
    // 如何把 str 内一个敏感词替换
    // 把替换结果从新赋值给 str, 下次就开始替换第二个
    // str = str.replace(s, '**')
    // console.log(str)


    // 只要 str 内还有, 就替换一个
    // indexOf() 的返回值不是 -1
    // while (str.indexOf(s) !== -1) {
    //   // 替换一个
    //   str = str.replace(s, '**')
    // }

    // console.log(str)

    // 方案2: 分割在合并
    // split() 可以按照关键字分隔
    // join() 可以使用连接符连接
    // var r1 = str.split(s)
    // console.log(r1)
    // var r2 = r1.join('**')
    // console.log(r2)


    // 这一句代码可以把 str 内所有同一个敏感词全部替换
    // var r2 = str.split(s).join('**')
    // console.log(r2)


    // 批量替换敏感词
    var arr = [ 'HH', 'NN', 'SS', 'DD' ]

    var str = 'asHHfdHHuySSwegNNfiuSSodbDDaf uiyDDasHHdgbSShfuNNohsDDdaoHHui'

    // 1. 遍历 arr
    arr.forEach(function (item) {
      // item 就是每一项内容, 也就是每一个敏感词
      str = str.split(item).join('**')
    })

    console.log(str)
  </script>
</body>
</html>
